package com.hspedu.set_;

import java.util.Comparator;
import java.util.TreeSet;

/**
 * @author DL5O
 * @version 1.0
 */
@SuppressWarnings("all")
public class TreeSet_ {
    public static void main(String[] args) {
        /*
        1.如果希望添加的元素，按照字符串大小来排序
        2.使用treeSet 提供的一个构造器，可以传入一个比较器(匿名内部类)
          并指定排序规则

        */
//        TreeSet treeSet = new TreeSet();
        TreeSet treeSet = new TreeSet(new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                //下面 调用String 的 compareTo 方法进行大小的比较
                //比较的规则：按照首字母进行排序
//                return ((String)o1).compareTo((String)o2);

                int o1Length = ((String)o1).length();
                int o2Length = ((String)o2).length();
                //比较的规则：按照长度来进行排序
                return o1Length - o2Length;
//                return o2Length - o1Length;
            }
        });
        //添加数据
        treeSet.add("jack");
        treeSet.add("tom");
        treeSet.add("sp");
        treeSet.add("a");
        treeSet.add("tom");//加入不进去
        treeSet.add("abc");//也加入不进去，这里认为长度相同就是同一个元素

        System.out.println("treeSet=" + treeSet);

        /*解读:
        1.构造器会把传入的比较器对象，赋给了TreeSet
        public TreeMap(Comparator<? super K> comparator) {
            this.comparator = comparator;
        }
        */
    }
}
